<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>两整数之和</title>
</head>
<body>
  <script>
    // 按位异或(^)：数值转为二进制，两数进行对比，相等则为1（0除外），不相等也为1，最后再转为十进制
    // 按位或(&)：数值转为二进制，两数进行对比，相等则为1（0除外），不相等则为0，最后再转为十进制
    // 左移(<<)：将 a 转为二进制，并向左移动指定 b 位数，左边超出的位数将会被清除，右边将会补零。
    function fn(a, b) {
      //进位左移一位得到新的数与异或得到的底数继续相加，直到进位为0结束
      while (b) {
        sum = a ^ b
        b = (a & b) << 1
        a = sum
      }
      return sum
    }
    console.log(fn(1, 2))
  </script>
</body>
</html>